function [x,y] = mobile_hilbert2euklides(h,m,s)
    % h - pozycja
    % m - stopien krzywej
    % s - stan początkowy krzywej - 0-7

    % tablica h2e(stan, pozycja hilb s4,:)
    % - (:,:,1) - nastepny stan (x y rot)
    % - (:,:,2) - poz x
    % - (:,:,3) - poz y   
    h2e(1,:,:) = [1 0 0; 0 0 1; 0 1 1; 7 1 0];
    h2e(2,:,:) = [0 0 0; 1 1 0; 1 1 1; 6 0 1];
    h2e(3,:,:) = [3 0 1; 2 0 0; 2 1 0; 5 1 1];
    h2e(4,:,:) = [2 0 1; 3 1 1; 3 1 0; 4 0 0];
    h2e(5,:,:) = [5 1 0; 4 1 1; 4 0 1; 3 0 0];
    h2e(6,:,:) = [4 1 0; 5 0 0; 5 0 1; 2 1 1];
    h2e(7,:,:) = [7 1 1; 6 1 0; 6 0 0; 1 0 1];
    h2e(8,:,:) = [6 1 1; 7 0 1; 7 0 0; 0 1 0];

    th = zeros(m,1); % pozycja hilberta w zapisie czworkowym
    tx = zeros(m,1); % pozycja x w zapisie binarnym
    ty = zeros(m,1); % pozycja y w zapisie binarnym
    
    % pozycja hilberta s10->s4
    % h = floor(h);
    for i=1:m;
        th(i) = mod(h,4);
        h = floor(h/4);
    end
    
    %s = 0; % stan kawalka krzywej
    l = m; % poziom
    
    while(l>0);
        tx(l) = h2e(s+1,th(l)+1,2);
        ty(l) = h2e(s+1,th(l)+1,3);
        s     = h2e(s+1,th(l)+1,1);
        l = l-1;
    end
    
    % pozostaje dokonac konwersji s2->s10
    x = convert(tx);
    y = convert(ty);
    
    function [r] = convert(d)
       r = 0;
       for j=m:-1:1;
           r = r*2+d(j);
       end
    end
    
end